chokidar usa la biblioteca picomatch para crear expresiones regulares a partir de cadenas globales.
está escrito en la documentación de picomatch que los corchetes deben escaparse con barras invertidas dobles
Algunos caracteres que se utilizan para buscar coincidencias en expresiones regulares también se consideran caracteres de ruta de archivo válidos en algunas plataformas.
Para hacer coincidir cualquiera de los siguientes caracteres como literales: `$^*+?()[]
Ejemplos:
console.log(pm.makeRe('foo/bar \\(1\\)'));
console.log(pm.makeRe('foo/bar \\(1\\)'));
¿Por qué el siguiente código no activa ningún evento?
Debe coincidir, por ejemplo: C:/Program Files (x86)/Folder/random name/dist/file.txt
const chokidar = require('chokidar'); const watcher = chokidar.watch('C:/Program Files \\(x86\\)/Folder/**/dist/*.txt') watcher .on('add', path => console.log(`File ${path} has been added`)) .on('change', path => console.log(`File ${path} has been changed`)) .on('unlink', path => console.log(`File ${path} has been removed`)) .on('addDir', path => console.log(`Directory ${path} has been added`)) .on('unlinkDir', path => console.log(`Directory ${path} has been removed`)) .on('error', error => console.log(`Watcher error: ${error}`)) .on('ready', () => console.log('Initial scan complete. Ready for changes'))